package com.shujia;

import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.*;
import java.util.Properties;

/*
    使用jdbc做删除，修改，查询的操作
 */
public class JDBCDemo4 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement state = null;
        try {
            //读取配置文件，获取driver,url,username,password
            //创建配置文件对象
            Properties prop = new Properties();
            //加载配置文件
            prop.load(new BufferedReader(new FileReader("mysql-jdbc/src/main/resources/mysqinfo.properties")));
            //根据key获取value值
            String driver = prop.getProperty("driver");
            String url = prop.getProperty("url");
            String username = prop.getProperty("username");
            String password = prop.getProperty("password");

            //1、加载驱动
            Class.forName(driver);

            //2、创建与数据库之间的连接
            conn = DriverManager.getConnection(url, username, password);

            //3、获取数据库操作对象
            state = conn.createStatement();

            //4、编写sql语句，操作数据库
            //删除操作
//            String deleteSql = "delete from goods where id=1003";
//            int number = state.executeUpdate(deleteSql);
//            if(number==1){
//                System.out.println("数据删除成功！！");
//            }else {
//                System.out.println("数据删除失败！！");
//            }

            //更新操作
//            String updateSql = "update goods set price=2000 where id=1002";
//            int number = state.executeUpdate(updateSql);
//            if (number == 1) {
//                System.out.println("数据更新成功！！");
//            } else {
//                System.out.println("数据更新失败！！");
//            }

            //查询操作
            String selectSql1 = "select car_info,car_date,car_mile,city as car_city from pp_twice_car where car_mile<5";
            //executeQuery 专门做查询操作的
            ResultSet resultSet = state.executeQuery(selectSql1); //返回的是一个结果集
            //boolean next() throws SQLException将光标从当前位置向前移动一行。
//            boolean next = resultSet.next(); //当返回值是true的时候，才表示有一行数据可以进行遍历
//            if(next){
//                //String getString(int columnIndex) 这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
//                String car_info = resultSet.getString(1); //表示第一行的第1列
//                String car_date = resultSet.getString(2); //表示第一行的第2列
//                String car_mile = resultSet.getString(3); //表示第一行的第3列
//                String city = resultSet.getString(4); //表示第一行的第4列
//                System.out.println("汽车名称："+car_info+", 汽车生产日期："+car_date+", 汽车公里数："+car_mile+"万公里, 城市："+city);
//            }
//            boolean next2 = resultSet.next(); //当返回值是true的时候，才表示有一行数据可以进行遍历
//            if(next2){
//                //String getString(int columnIndex) 这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
//                String car_info = resultSet.getString(1); //表示第一行的第1列
//                String car_date = resultSet.getString(2); //表示第一行的第2列
//                String car_mile = resultSet.getString(3); //表示第一行的第3列
//                String city = resultSet.getString(4); //表示第一行的第4列
//                System.out.println("汽车名称："+car_info+", 汽车生产日期："+car_date+", 汽车公里数："+car_mile+"万公里, 城市："+city);
//            }
            //使用while循环改进
            while (resultSet.next()) {
                //String getString(int columnIndex) 这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
//                String car_info = resultSet.getString(1); //表示第一行的第1列
//                String car_date = resultSet.getString(2); //表示第一行的第2列
//                String car_mile = resultSet.getString(3); //表示第一行的第3列
//                String city = resultSet.getString(4); //表示第一行的第4列
//                System.out.println("汽车名称：" + car_info + ", 汽车生产日期：" + car_date + ", 汽车公里数：" + car_mile + "万公里, 城市：" + city);

                //String getString(String columnLabel) 这个检索的当前行中指定列的值 ResultSet对象为 String的Java编程语言。
                //根据列名获取列值的时候，注意以最终sql结果的列名为准
                String carInfo = resultSet.getString("car_info");
                String carDate = resultSet.getString("car_date");
                String carMile = resultSet.getString("car_mile");
                String carCity = resultSet.getString("car_city");
                System.out.println("汽车名称：" + carInfo + ", 汽车生产日期：" + carDate + ", 汽车公里数：" + carMile + "万公里, 城市：" + carCity);
            }


        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }


    }
}
